home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 37
/
Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso
/
Aminet
/
dev
/
lang
/
sofa.lha
/
sofa
/
smalleiffel
/
bin_c
/
compile_to_c18.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-03-25
|
122KB
|
5,177 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.76Beta#1)--
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://SmallEiffel.loria.fr/ --
*/
#include "compile_to_c.h"
T0* r58do_rename(T58* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=a1;
}
else{
R=r85name_in_child((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a1);
/*[IF*/
if((R)==((void*)(NULL))){
R=a1;
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r58precursor_for(T58* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _f=NULL;
T0* _cn=NULL;
T0* _original_fn=NULL;
_original_fn=/*SSFRF4*//*X90first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T198*)(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)a2))->_base_feature/*24*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if(r58has_redefine(C,_original_fn)){
_cn=/*SSWARF2*//*X167parent*/(/*RF2*/(((T168*)a1))->_parent/*12*/);
/*[IF*/
if(((_cn)==((void*)(NULL)))||(((/*RF2*/(((T61*)_cn))->_to_string/*8*/))==((void*)((/*RF2*/((T61*)(X52base_class_name((/*RF2*/(C)->_type/*4*/))))->_to_string/*8*/))))){
_f=r58look_up_for(C,/*SSFRF4*//*X334run_class*/r368run_class(((T368*)a2)),_original_fn);
R=_f;
if(NULL!=(R)){
switch(((T0*)R)->id){
case 306:case 304:case 303:case 307:
break;
default:
R=NULL;
}
}/*[IF*/
if(((_f)!=((void*)(NULL)))&&((R)==((void*)(NULL)))){
r66add_position(/*SSWARF2*//*X167start_position*/(/*RF2*/(((T168*)a1))->_start_position/*4*/));
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(_f),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_97986));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r58consider_export(T58* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_export_list/*16*/))==((void*)(NULL))){
R=r51clients_for((T51*)(X52base_class((/*RF2*/(C)->_type/*4*/))),a1);
}
else{
R=r319clients_for((T319*)((/*RF2*/(C)->_export_list/*16*/)),a1);
/*[IF*/
if((R)==((void*)(NULL))){
R=r51clients_for((T51*)(X52base_class((/*RF2*/(C)->_type/*4*/))),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r58apply_undefine(T58* C,T0* a1,T0* a2){
T0* R=NULL;
T2 _index=0;
T0* _fnkey=NULL;
T0* _ufn=NULL;
_ufn=r58has_undefine(C,a2);
/*[IF*/
if((_ufn)!=((void*)(NULL))){
/*[IF*/
if(((/*RF2*/(C)->_undefine_memory1/*32*/))==((void*)(NULL))){
{T31*n=((T31*)malloc(sizeof(*n))/*16*/);
*n=M31;
r31with_capacity(n,r83count((T83*)((/*RF2*/(C)->_undefine_list/*20*/))));
(/*SFN*/C->_undefine_memory1)=((T0*)n);
}
{T92*n=((T92*)malloc(sizeof(*n))/*16*/);
*n=M92;
r92with_capacity(n,r83count((T83*)((/*RF2*/(C)->_undefine_list/*20*/))));
(/*SFN*/C->_undefine_memory2)=((T0*)n);
}
}
/*FI]*/
_fnkey=X82to_key(_ufn);
_index=r31fast_index_of((T31*)((/*RF2*/(C)->_undefine_memory1/*32*/)),_fnkey);
/*[IF*/
if((_index)>((/*RF2*/((T31*)((/*RF2*/(C)->_undefine_memory1/*32*/)))->_upper/*12*/))){
r31add_last((T31*)((/*RF2*/(C)->_undefine_memory1/*32*/)),_fnkey);
R=X90try_to_undefine(a1,_ufn,(/*RF2*/((T57*)((/*RF2*/(C)->_parent_list/*0*/)))->_base_class/*0*/));
X92add_last((/*RF2*/(C)->_undefine_memory2/*36*/),R);
}
else{
R=X92item((/*RF2*/(C)->_undefine_memory2/*36*/),_index);
}
/*FI]*/
}
else{
R=a1;
}
/*FI]*/
return R;
}
T6 r58is_a_vncg(T58* C,T0* a1,T0* a2){
T6 R=0;
T0* _t2_bcn=NULL;
T0* _type_bcn=NULL;
T0* _t2_bc=NULL;
T0* _type_bc=NULL;
T0* _rt=NULL;
T0* _tfg=NULL;
T0* _gl2=NULL;
T0* _gl1=NULL;
T0* _gl=NULL;
T2 _i=0;
T2 _rank=0;
_type_bc=X52base_class((/*RF2*/(C)->_type/*4*/));
_type_bcn=(/*RF2*/((T61*)((/*RF2*/(((T51*)_type_bc))->_name/*18*/)))->_to_string/*8*/);
_t2_bc=X52base_class(a2);
_t2_bcn=(/*RF2*/((T61*)((/*RF2*/(((T51*)_t2_bc))->_name/*18*/)))->_to_string/*8*/);
/*[IF*/
if((_type_bcn)==((void*)(_t2_bcn))){
_gl=X52generic_list((/*RF2*/(C)->_type/*4*/));
_gl2=X52generic_list(a2);
/*[IF*/
if(((_gl)==((void*)(NULL)))||((r258count(((T258*)_gl)))!=(r258count(((T258*)_gl2))))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position((/*RF2*/(C)->_type/*4*/)),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position(a2),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_60064));
}
/*FI]*/
/*[IF*/
if(X52is_generic(a1)){
_gl1=X52generic_list(a1);
R=1;
_i=r258count(((T258*)_gl2));
while (!((!(R))||((_i)==(0))))
{
/*[IF*/
if(X52is_formal_generic(r258item(((T258*)_gl),_i))){
_tfg=r258item(((T258*)_gl),_i);
if(NULL!=(_tfg)){
switch(((T0*)_tfg)->id){
case 280:
break;
default:
_tfg=NULL;
}
}_rank=(/*RF2*/(((T280*)_tfg))->_rank/*8*/);
R=X52is_a(r258item(((T258*)_gl1),_rank),r258item(((T258*)_gl2),_i));
}
else{
_rt=X52run_type(X52to_runnable(r258item(((T258*)_gl),_i),a1));
R=X52is_a(_rt,r258item(((T258*)_gl2),_i));
}
/*FI]*/
_i=(_i)-(1);
}
}
else{
R=X52is_a((/*RF2*/(C)->_type/*4*/),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
else if(r51is_subclass_of(((T51*)_type_bc),_t2_bc)){
/*[IF*/
if(X52is_generic(a1)){
_rt=X52run_type(X52to_runnable((/*RF2*/(C)->_type/*4*/),a1));
R=r51is_a_vncg(((T51*)_type_bc),_rt,a2);
}
else{
R=r51is_a_vncg(((T51*)_type_bc),(/*RF2*/(C)->_type/*4*/),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r58base_class(T58* C){
T0* R=NULL;
R=X52base_class((/*RF2*/(C)->_type/*4*/));
return R;
}
T0* r58look_up_for(T58* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _pfn=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=X52look_up_for((/*RF2*/(C)->_type/*4*/),a1,a2);
R=r58apply_undefine(C,R,a2);
}
else{
_pfn=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a2);
/*[IF*/
if((_pfn)!=((void*)(NULL))){
R=X52look_up_for((/*RF2*/(C)->_type/*4*/),a1,_pfn);
R=r58apply_undefine(C,R,a2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r58original_name(T58* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _old_name=NULL;
_bc=X52base_class((/*RF2*/(C)->_type/*4*/));
/*[IF*/
if(((_bc)==((void*)(a1)))||(r51is_subclass_of(((T51*)_bc),a1))){
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=r51original_name(((T51*)_bc),a1,a2);
}
else{
_old_name=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a2);
/*[IF*/
if((_old_name)!=((void*)(NULL))){
R=r51original_name(((T51*)_bc),a1,_old_name);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r58get_started(T58* C,T0* a1){
T6 _all_check=0;
T0* _new_fn=NULL;
T0* _old_fn=NULL;
T0* _fn=NULL;
T0* _pbc=NULL;
T0* _wbc=NULL;
T2 _i=0;
_all_check=r47all_check((T47*)(oBC13run_control));
(/*SFN*/C->_parent_list)=a1;
_pbc=X52base_class((/*RF2*/(C)->_type/*4*/));
_wbc=(/*RF2*/((T57*)((/*RF2*/(C)->_parent_list/*0*/)))->_base_class/*0*/);
/*[IF*/
if(_all_check){
/*[IF*/
if(((/*RF2*/(((T51*)_pbc))->_formal_generic_list/*22*/))!=((void*)(NULL))){
/*[IF*/
if((X52generic_list((/*RF2*/(C)->_type/*4*/)))==((void*)(NULL))){
}
/*FI]*/
}
else if(X52is_generic((/*RF2*/(C)->_type/*4*/))){
r66add_position((/*RF2*/((T61*)((/*RF2*/(((T51*)_pbc))->_name/*18*/)))->_start_position/*0*/));
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position((/*RF2*/(C)->_type/*4*/)),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_71750));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((/*RF2*/(C)->_rename_list/*12*/))!=((void*)(NULL)))){
r85get_started((T85*)((/*RF2*/(C)->_rename_list/*12*/)),_pbc);
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((/*RF2*/(C)->_undefine_list/*20*/))!=((void*)(NULL)))){
_i=r83count((T83*)((/*RF2*/(C)->_undefine_list/*20*/)));
while (!((_i)==(0)))
{
_fn=r83item((T83*)((/*RF2*/(C)->_undefine_list/*20*/)),_i);
_old_fn=r58get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r51has(((T51*)_pbc),_fn)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_120106a));
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_redefine_list/*24*/))!=((void*)(NULL))){
_i=r83count((T83*)((/*RF2*/(C)->_redefine_list/*24*/)));
while (!((_i)==(0)))
{
_fn=r83item((T83*)((/*RF2*/(C)->_redefine_list/*24*/)),_i);
/*[IF*/
if(!(r51proper_has(((T51*)_wbc),_fn))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_35512));
}
/*FI]*/
/*[IF*/
if(_all_check){
_old_fn=r58get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r51has(((T51*)_pbc),_fn)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_120106));
}
/*FI]*/
_new_fn=r58get_new_name(C,_fn);
/*[IF*/
if((_new_fn)!=((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_new_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_120106));
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
/*[IF*/
if((_all_check)&&(((/*RF2*/(C)->_select_list/*28*/))!=((void*)(NULL)))){
_i=r83count((T83*)((/*RF2*/(C)->_select_list/*28*/)));
while (!((_i)==(0)))
{
_fn=r83item((T83*)((/*RF2*/(C)->_select_list/*28*/)),_i);
_old_fn=r58get_old_name(C,_fn);
/*[IF*/
if(((_old_fn)==((void*)(NULL)))&&(!(r51has(((T51*)_pbc),_fn)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_101934));
}
/*FI]*/
_new_fn=r58get_new_name(C,_fn);
/*[IF*/
if((_new_fn)!=((void*)(NULL))){
/*[IF*/
if((r58get_old_name(C,_new_fn))==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_new_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_101934));
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
T0*oBC58forbidden_parent_list=NULL;
T0* r58up_to_original(T58* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _old_name=NULL;
_bc=X52base_class((/*RF2*/(C)->_type/*4*/));
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=r51up_to_original(((T51*)_bc),a1,a2);
}
else{
_old_name=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a2);
/*[IF*/
if((_old_name)!=((void*)(NULL))){
R=r51up_to_original(((T51*)_bc),a1,_old_name);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r58missing_select(T0* a1,T0* a2){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a2),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_98523));
}
T0* r58going_up(T58* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _bc=NULL;
_bc=X52base_class((/*RF2*/(C)->_type/*4*/));
/*[IF*/
if((_bc)==((void*)(a2))){
R=r58going_down(C,a1,a3);
}
else if(r51is_general(((T51*)_bc))){
R=r58going_down(C,a1,a3);
}
else if(r51is_subclass_of(((T51*)_bc),a2)){
r360add_last(((T360*)a1),(T0*)C);
R=r51going_up(((T51*)_bc),a1,a2,a3);
}
/*FI]*/
return R;
}
T6 r58has_redefine(T58* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_redefine_list/*24*/))!=((void*)(NULL))){
R=r83has((T83*)((/*RF2*/(C)->_redefine_list/*24*/)),a1);
}
/*FI]*/
return R;
}
T0* r58get_new_name(T58* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))!=((void*)(NULL))){
R=r85name_in_child((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a1);
/*[IF*/
if((R)==((void*)(a1))){
R=NULL;
}
/*FI]*/
}
/*FI]*/
return R;
}
void r58make(T58* C,T0* a1){
(/*SFN*/C->_type)=a1;
/*[IF*/
if(r44fast_has((T44*)(oBC58forbidden_parent_list),X52written_mark((/*RF2*/(C)->_type/*4*/)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position((/*RF2*/(C)->_type/*4*/)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms58_22560);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52written_mark((/*RF2*/(C)->_type/*4*/));
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r58fatal_error(((T0*)ms58_34344));
}
/*FI]*/
}
T0* r58get_old_name(T58* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))!=((void*)(NULL))){
R=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a1);
/*[IF*/
if((R)==((void*)(a1))){
R=NULL;
}
/*FI]*/
}
/*FI]*/
return R;
}
void r58fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r58multiple_check(T58* C,T0* a1){
T0* _fn2=NULL;
T0* _fn1=NULL;
T2 _i=0;
T0* _bc2=NULL;
T0* _bc1=NULL;
_bc1=X52base_class((/*RF2*/(C)->_type/*4*/));
_bc2=X52base_class((/*RF2*/(((T58*)a1))->_type/*4*/));
/*[IF*/
if((((_bc1)==((void*)(_bc2)))||(r51is_subclass_of(((T51*)_bc1),_bc2)))||(r51is_subclass_of(((T51*)_bc2),_bc1))){
/*[IF*/
if(((/*RF2*/(C)->_redefine_list/*24*/))!=((void*)(NULL))){
_i=r83count((T83*)((/*RF2*/(C)->_redefine_list/*24*/)));
while (!((_i)==(0)))
{
_fn1=r83item((T83*)((/*RF2*/(C)->_redefine_list/*24*/)),_i);
/*[IF*/
if(((/*RF2*/(((T58*)a1))->_rename_list/*12*/))==((void*)(NULL))){
}
else{
_fn2=r85name_in_child((T85*)((/*RF2*/(((T58*)a1))->_rename_list/*12*/)),_fn1);
/*[IF*/
if((_fn2)!=((void*)(_fn1))){
/*[IF*/
if(((/*RF2*/(C)->_select_list/*28*/))!=((void*)(NULL))){
/*[IF*/
if(r83has((T83*)((/*RF2*/(C)->_select_list/*28*/)),_fn1)){
/*[IF*/
if(((/*RF2*/(((T58*)a1))->_select_list/*28*/))!=((void*)(NULL))){
/*[IF*/
if(r83has((T83*)((/*RF2*/(((T58*)a1))->_select_list/*28*/)),_fn2)){
r58select_conflict(_fn1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
else if(((/*RF2*/(((T58*)a1))->_select_list/*28*/))==((void*)(NULL))){
r58missing_select(_fn1,_fn2);
}
else if(!(r83has((T83*)((/*RF2*/(((T58*)a1))->_select_list/*28*/)),_fn2))){
r58missing_select(_fn1,_fn2);
}
/*FI]*/
}
else if(((/*RF2*/(((T58*)a1))->_select_list/*28*/))==((void*)(NULL))){
r58missing_select(_fn1,_fn2);
}
else if(!(r83has((T83*)((/*RF2*/(((T58*)a1))->_select_list/*28*/)),_fn2))){
r58missing_select(_fn1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
/*FI]*/
}
T6 r58has_select_for(T58* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_select_list/*28*/))!=((void*)(NULL))){
R=r83has((T83*)((/*RF2*/(C)->_select_list/*28*/)),a1);
}
/*FI]*/
return R;
}
T0* r58name_in_parent(T58* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=a1;
}
else{
R=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a1);
}
/*FI]*/
return R;
}
T0* r58has_undefine(T58* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_undefine_list/*20*/))!=((void*)(NULL))){
R=r83feature_name((T83*)((/*RF2*/(C)->_undefine_list/*20*/)),X82to_key(a1));
}
/*FI]*/
return R;
}
T0* r58clients_for(T58* C,T0* a1){
T0* R=NULL;
T0* _fn2=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=r58consider_export(C,a1);
}
else{
_fn2=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a1);
/*[IF*/
if((_fn2)!=((void*)(NULL))){
R=r58consider_export(C,_fn2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r58e_feature(T58* C,T0* a1){
T0* R=NULL;
T0* _fn2=NULL;
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
R=r51e_feature((T51*)(X52base_class((/*RF2*/(C)->_type/*4*/))),a1);
}
else{
_fn2=r85name_in_parent((T85*)((/*RF2*/(C)->_rename_list/*12*/)),a1);
/*[IF*/
if((_fn2)!=((void*)(NULL))){
R=r51e_feature((T51*)(X52base_class((/*RF2*/(C)->_type/*4*/))),_fn2);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r58select_conflict(T0* a1,T0* a2){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a2),&se_tmp0)));
}
r58fatal_error(((T0*)ms58_73570));
}
void r58add_rename(T58* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_rename_list/*12*/))==((void*)(NULL))){
{T85*n=((T85*)malloc(sizeof(*n))/*4*/);
*n=M85;
r85make(n,a1);
(/*SFN*/C->_rename_list)=((T0*)n);
}
}
else{
/*[IRF3.5add_last*/r88add_last(((T88*)((/*RF2*/((T85*)((/*RF2*/(C)->_rename_list/*12*/)))->_list/*0*/))),a1);
/*]*/
}
/*FI]*/
}
T68 r58start_position(T58* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X52start_position((/*RF2*/(C)->_type/*4*/)),&se_tmp0));
}
return R;
}
void r295c_mapping_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r47boost((T47*)(oBC13run_control))){
r295c_mapping_external((/*RF2*/(((T337*)a1))->_base_feature/*24*/),r337arg_count(((T337*)a1)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
}
else{
r337default_mapping_procedure(((T337*)a1));
}
/*FI]*/
}
void r295c_mapping_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r47boost((T47*)(oBC13run_control))){
r295c_mapping_external((/*RF2*/(((T333*)a1))->_base_feature/*24*/),r333arg_count(((T333*)a1)));
}
else{
r333default_mapping_function(((T333*)a1));
}
/*FI]*/
}
void r295standard_c_define_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC288body))))->_count)=(0);
/*]*/
r295wrapped_external_call((/*RF2*/(((T337*)a1))->_base_feature/*24*/),r337arg_count(((T337*)a1)));
r337c_define_with_body(((T337*)a1),oBC288body);
}
/*FI]*/
}
void r295standard_c_define_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC288body))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC288body),((T3)'R'));
r7extend((T7*)(oBC288body),((T3)'\75'));
r295wrapped_external_call((/*RF2*/(((T333*)a1))->_base_feature/*24*/),r333arg_count(((T333*)a1)));
r333c_define_with_body(((T333*)a1),oBC288body);
}
/*FI]*/
}
void r295wrapped_external_call(T0* a1,T2 a2){
T2 _i=0;
r7append((T7*)(oBC288body),/*SSFRF4*//*X289external_c_name*/r291external_c_name(((T291*)a1)));
r7extend((T7*)(oBC288body),((T3)'\50'));
/*[IF*/
{/*AT*/r7extend((T7*)(oBC288body),((T3)'C'));
/*[IF*/
if((a2)>(0)){
r7extend((T7*)(oBC288body),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
_i=1;
while (!((_i)>(a2)))
{
r7extend((T7*)(oBC288body),((T3)'a'));
r2append_in(_i,oBC288body);
_i=(_i)+(1);
/*[IF*/
if((_i)<=(a2)){
r7extend((T7*)(oBC288body),((T3)'\54'));
}
/*FI]*/
}
r7append((T7*)(oBC288body),((T0*)ms14_330));
}
void r295c_mapping_external(T0* a1,T2 a2){
T6 _tcbd=0;
T6 _eruc=0;
_eruc=/*(IRF4.2use_current*/(1)/*)*/;
/*[IF*/
if(!(_eruc)){
_tcbd=r325target_cannot_be_dropped((T325*)(oBC13cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),/*SSFRF4*//*X289external_c_name*/r291external_c_name(((T291*)a1)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_eruc){
r325put_target_as_value((T325*)(oBC13cpp));
}
/*FI]*/
/*[IF*/
if((a2)>(0)){
/*[IF*/
if(_eruc){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_arguments((T325*)(oBC13cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_eruc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
T6 r218is_always_true(T218* C){
T6 R=0;
T0* _assertion=NULL;
T2 _i=0;
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
R=1;
while (!((!(R))||((_i)==(0))))
{
_assertion=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
R=r100is_always_true(((T100*)_assertion));
_i=(_i)-(1);
}
return R;
}
T0* r218check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms218_966);
return R;
}
void r218make(T218* C,T68 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_header_comment)=a2;
(/*SFN*/C->_list)=a3;
}
void r218compile_to_c(T218* C){
T0* _assertion=NULL;
T6 _need_se_tmp=0;
T2 _i=0;
/*[IF*/
if(r218is_always_true(C)){
r325increment_static_expression_count((T325*)(oBC13cpp),r101count((T101*)((/*RF2*/(C)->_list/*12*/))));
}
else{
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_51064));
/*]*/
}
else{
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_741));
/*]*/
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_522));
/*]*/
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_712));
/*]*/
}
/*FI]*/
_i=1;
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_assertion=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(r100is_always_true(((T100*)_assertion))){
}
else{
r100collect_c_tmp(((T100*)_assertion));
_need_se_tmp=r325se_tmp_open_declaration((T325*)(oBC13cpp));
/*[IRF3.3set_check_assertion_mode*/((((T325*)((T325*)(oBC13cpp))))->_check_assertion_mode)=(r218check_assertion_mode());
/*]*/
r100compile_to_c(((T100*)_assertion));
/*[IF*/
if(_need_se_tmp){
r325se_tmp_close_declaration((T325*)(oBC13cpp));
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_19791));
/*]*/
}
else{
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_2184));
/*]*/
}
/*FI]*/
}
/*FI]*/
}
void r218afd_check(T218* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
r100afd_check((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
}
T6 r218use_current(T218* C){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
while (!((R)||((_i)==(0))))
{
R=r100use_current((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
T0* r218to_runnable(T218* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*16*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_run_feature)=r49top_rf((T49*)(oBC13small_eiffel));
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
(/*SFN*/C->_list)=r383runnable((/*RF2*/(C)->_list/*12*/),a1,(/*RF2*/(C)->_run_feature/*20*/),((T3)'\137'));
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
R=((T0*)(C));
}
/*FI]*/
}
else{
R=r218twin(C);
/*[IRF3.3set_current_type*/((((T218*)(((T218*)R))))->_current_type)=(NULL);
/*]*/
R=r218to_runnable(((T218*)R),a1);
}
/*FI]*/
return R;
}
T0* r218twin(T218* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T218*)R)=*C;
return R;
}
T6 r218is_pre_computable(T218* C){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))==((void*)(NULL))){
R=1;
}
else{
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
R=1;
while (!((!(R))||((_i)==(0))))
{
R=r100is_pre_computable((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
T0* r205try_to_undefine_aux(T205* C,T0* a1,T0* a2){
T0* R=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=r205start_position(C),&se_tmp0)));
}
{T68 se_tmp0;
r205error((*(se_tmp0=X82start_position(a1),&se_tmp0)),((T0*)ms200_98784));
}
r51fatal_undefine(((T51*)a2),a1);
return R;
}
T0* r205try_to_undefine(T205* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
_fn2=r83feature_name((T83*)((/*RF2*/(C)->_names/*8*/)),X82to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X82undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r205try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X284set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r205merge_header_comments(C,R);
}
else{
r51fatal_undefine(((T51*)a2),a1);
}
/*FI]*/
return R;
}
void r205check_obsolete(T205* C,T68 a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r205to_run_feature(T205* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(a1);
R=r50at(((T50*)_rc),a2);
if(NULL!=(R)){
switch(((T0*)R)->id){
case 388:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
{T388*n=((T388*)malloc(sizeof(*n))/*36*/);
*n=M388;
r388make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r205error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T6 r205is_not_mergeable_with(T205* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL))){
R=(X90result_type(a1))!=((void*)(NULL));
}
else{
R=(X90result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_64152);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else{
/*[IF*/
{/*AT*/R=(X90arguments(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_82612);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else {/*AT*/}
/*FI]*/
}
/*FI]*/
r205merge_header_comments(C,a1);
return R;
}
void r205make(T205* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T205*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_result_type)=a2;
(/*SFN*/C->_value_mem)=a3;
}
void r205add_into(T205* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
{T68 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r83count((T83*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i);
/*[IF*/
if(r91has(((T91*)a1),X82to_key(_fn))){
_fn=/*SSFRF4*//*X90first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T198*)(r91at(((T91*)a1),X82to_key(_fn))))->_names/*8*/))))->_first/*0*/)/*)*/;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms90_41470);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(_fn);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
else{
r91put(((T91*)a1),(T0*)C,X82to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r205can_hide(T205* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(X90result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL)))||((X90result_type(a1))==((void*)(NULL)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r205error((*(se_tmp0=r205start_position(C),&se_tmp0)),((T0*)ms90_64152));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X90arguments(a1)))){
/*[IF*/
{/*AT*/{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r205error((*(se_tmp0=r205start_position(C),&se_tmp0)),((T0*)ms90_82612));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(X52is_a_in((/*RF2*/(C)->_result_type/*20*/),X90result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_51136);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((/*RF2*/(((T50*)a2))->_current_type/*0*/));
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r205merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
void r205merge_header_comments(T205* C,T0* a1){
/*[IF*/
if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/);
}
else if((/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X90set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}
T68 r205start_position(T205* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X82start_position(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}
void r389standard_c_object_model(T389* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=(/*RF2*/(C)->_run_class/*12*/);
_mem_id=(/*RF2*/(((T50*)_rc))->_id/*4*/);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'M'));
r2append_in(_mem_id,((T0*)ms52_783104));
r325put_extern7((T325*)(oBC13cpp),((T0*)ms52_783104));
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
r50c_object_model_in(((T50*)_rc),((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
r325swap_on_h((T325*)(oBC13cpp));
}
void r389gc_free_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_8540));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
T0* r389generic_list(T389* C){
T0* R=NULL;
R=X52generic_list((/*RF2*/(C)->_expanded_type/*20*/));
return R;
}
void r389standard_gc_info_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_22591a));
r7append(((T7*)a1),/*(IRF4.3run_time_mark*/(/*RF2*/(C)->_written_mark/*16*/)/*)*/);
r7append(((T7*)a1),((T0*)ms14_5895));
r389gc_info_nb_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_330));
r7append(((T7*)a1),((T0*)ms52_22591));
r389gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_5895));
r389gc_store_left_in(C,a1);
r7append(((T7*)a1),((T0*)ms14_330));
}
void r389standard_c_print_function(T389* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r50c_print_function((T50*)((/*RF2*/(C)->_run_class/*12*/)));
}
/*FI]*/
}
void r389cast_to_ref(T389* C){
X52cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
}
void r389gc_call_new_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms14_990));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}
void r389standard_c_struct(T389* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/;
_wa=r50writable_attributes((T50*)((/*RF2*/(C)->_run_class/*12*/)));
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'S'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\173'));
/*[IF*/
{/*AT*//*[IF*/
if(r50is_tagged((T50*)((/*RF2*/(C)->_run_class/*12*/)))){
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms52_5873));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
while (!((_i)==(0)))
{
_a=r346item(((T346*)_wa),_i);
_t=X52run_type((/*RF2*/(((T345*)_a))->_result_type/*28*/));
X52c_type_for_result_in(_t,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\137'));
r7append((T7*)(((T0*)ms52_783104)),X82to_string((/*RF2*/(((T345*)_a))->_name/*12*/)));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\73'));
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\175'));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r389base_class(T389* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r389base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_36693);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66add_type((T0*)C,((T0*)ms14_46));
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
T0* r389look_up_for(T389* C,T0* a1,T0* a2){
T0* R=NULL;
R=r51look_up_for((T51*)(r389base_class(C)),a1,a2);
return R;
}
void r389gc_store_chunk_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_19074));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
void r389mapping_cast(T389* C){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_15456)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_15456)),((T3)'\50'));
r389c_type_for_target_in(C,((T0*)ms52_15456));
r7extend((T7*)(((T0*)ms52_15456)),((T3)'\51'));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_15456));
/*]*/
}
void r389gc_align_mark_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_24609));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
T6 r389is_a_in(T389* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*16*/))==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T50*)a2))->_current_type/*0*/);
_t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r389standard_c_typedef(T389* C){
T2 _mem_id=0;
_mem_id=/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/;
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
/*[IF*/
{/*AT*/r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_6448));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'S'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
}
T6 r389is_native_array(T389* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}
T6 r389is_a(T389* C,T0* a1){
T6 R=0;
/*[IF*/
if((X52run_time_mark(a1))!=((void*)(X52run_time_mark((/*RF2*/(C)->_expanded_type/*20*/))))){
R=X52is_a((/*RF2*/(C)->_expanded_type/*20*/),a1);
}
else{
r66add_type((T0*)C,((T0*)ms14_17460));
r66add_type(a1,((T0*)ms14_46));
}
/*FI]*/
return R;
}
T6 r389is_generic(T389* C){
T6 R=0;
R=X52is_generic((/*RF2*/(C)->_expanded_type/*20*/));
return R;
}
T2 r389c_sizeof_pointer(void){
T2 R=0;
T8 _p=NULL;
R=sizeof(T8);
return R;
}
void r389gc_store_left_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_17170));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
T0* r389smallest_ancestor(T0* a1){
T0* R=NULL;
r389fatal_error(((T0*)ms389_86602));
return R;
}
T0* r389string_aliaser(void){
if(fBC13string_aliaser==0){fBC13string_aliaser=1;{
{T21*n=((T21*)malloc(1));
oBC13string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6add1*/{T0* b1=((T0*)ms15_696);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1915);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_669);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1980);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9234);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6405);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12529);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9801);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16393);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12550);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_4728);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_10740);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12030);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_14817);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6307);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6643);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12595);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_5508);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_17448);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1216);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7928);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6776);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12804);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1168);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7576);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_4956);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16692);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19124);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_921);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_10680);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_64);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_368);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_61);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_246);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_62);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9408);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_242);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_60);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_45);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_42);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_216);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1011);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_450);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8211);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_43);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_94);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_552);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_564);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_47);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_188);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_35);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1035a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11424);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2600);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_22524));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6702);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11776);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_29246));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13419);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2765a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1644);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19294);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1772);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15070);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15570);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27034);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15190);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15890);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19151);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13491);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_28490);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8750);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_19437);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22824a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_23829);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27272);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_10528);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13707);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6846);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1664);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2760);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2730a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22248);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22788);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_30660);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13995);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_432);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_22596));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_60104);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_24960);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_34432);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11144);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_18964);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1724);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1744);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2765);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_6762);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1656);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
r21add2(((T0*)ms15_60016));
r21add2(((T0*)ms15_26880));
r21add2(((T0*)ms15_33240));
r21add2(((T0*)ms15_21624));
r21add2(((T0*)ms15_60060));
r21add2(((T0*)ms15_26908));
r21add2(((T0*)ms15_33270));
r21add2(((T0*)ms15_21648));
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_17886);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22824);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_21192);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2785);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11496);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_53940);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1035);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2440);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2445);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_32730);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12744);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13662);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8547);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8505);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9436);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_14193);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12915a);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12915);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_34528);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13752);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11336);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_26156);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_11376);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27580);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_33990);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27443);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_40358);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_25584);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7380);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2730);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7530);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13977);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_14175);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16970);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_8820);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7326);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22716);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_12978);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16770);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_16850);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9051);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_21300);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_56720);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1800);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_2780);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_27456);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_15650);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_9275);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_58075);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_22140);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_13833);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_7314);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*[IRF3.6add1*/{T0* b1=((T0*)ms15_1608);
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC13string_aliaser;
}
void r389standard_gc_define2(T389* C){
T6 _gc_check_id=0;
T2 _rcid=0;
T0* _rc=NULL;
_rc=(/*RF2*/(C)->_run_class/*12*/);
_rcid=(/*RF2*/(((T50*)_rc))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_11416));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_6360));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms52_404));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_69075));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_361836));
r389gc_store_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_94205));
r344memory_dispose(((T0*)ms52_3073536),((T0*)ms52_320),(/*RF2*/(C)->_run_class/*12*/));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_21552));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_407960));
r344memory_dispose(((T0*)ms52_3073536),((T0*)ms52_322),(/*RF2*/(C)->_run_class/*12*/));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1591218));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_14102));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r389gc_mark_in(C,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_248a));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_582));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
_gc_check_id=(r50is_tagged(((T50*)_rc)))&&(r47no_check((T47*)(oBC13run_control)));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_21437));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_932));
}
/*FI]*/
r50gc_mark_fixed_size(((T50*)_rc),0,((T0*)ms52_3073536));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_270));
}
/*FI]*/
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r389gc_align_mark_in(C,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_14570));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_585));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
r50gc_align_mark_fixed_size(((T50*)_rc),((T0*)ms52_3073536));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms52_5346));
r2append_in(_rcid,((T0*)ms52_783104a));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms52_454797));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_78075));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_356700));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_5802));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104a)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'T'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\52'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_990));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_4320));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_884));
/*[IF*/
if((/*RF2*/((T344*)(oBC13gc_handler))->_info_flag/*1*/)){
r389gc_info_nb_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_620));
}
/*FI]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_741));
r389gc_store_left_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1425));
r389gc_store_left_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_3810));
r389gc_store_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_13200));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11044));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_39474));
r389gc_store_left_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_2370));
r389gc_store_left_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_712));
r389gc_store_chunk_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_103626));
r389gc_store_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11760));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11024));
r389gc_store_chunk_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_23640));
r389gc_initialize_chunk(C,_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_31806));
r389gc_store_chunk_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1694883));
r389gc_store_chunk_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_51520));
r389gc_store_chunk_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_816));
r389gc_initialize_chunk(C,_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_59265));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1725));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r389gc_free_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_15800));
r389gc_store_chunk_in(C,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_8008));
r389gc_initialize_chunk(C,_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_21504));
/*[IF*/
{/*AT*/r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_14003));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
}
/*FI]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11862));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_2118));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
}
void r389c_header_pass4(T389* C){
/*[IF*/
{/*AT*/r389standard_c_struct(C);
}
/*FI]*/
r389standard_c_object_model(C);
r389standard_c_print_function(C);
}
void r389standard_gc_define1(T389* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=(/*RF2*/(C)->_run_class/*12*/);
_rcid=(/*RF2*/(((T50*)_rc))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_6448));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'B'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_138));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'B'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_414));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_78572));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_12042));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104a));
/*]*/
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\52'));
r389gc_store_in(C,((T0*)ms52_783104a));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms14_1260));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r389gc_store_left_in(C,((T0*)ms52_783104a));
r325put_extern2((T325*)(oBC13cpp),((T0*)ms52_783104a),((T3)'0'));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms52_2345));
r389gc_store_chunk_in(C,((T0*)ms52_783104a));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms14_1260));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\52'));
r389gc_free_in(C,((T0*)ms52_783104a));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms14_1260));
/*[IF*/
if((/*RF2*/((T344*)(oBC13gc_handler))->_info_flag/*1*/)){
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r389gc_info_nb_in(C,((T0*)ms52_783104a));
r325put_extern2((T325*)(oBC13cpp),((T0*)ms52_783104a),((T3)'0'));
}
/*FI]*/
}
void r389standard_just_before_gc_mark_in(T389* C,T0* a1){
r389gc_free_in(C,a1);
r7extend(((T7*)a1),((T3)'\75'));
r7append(((T7*)a1),((T0*)ms14_1260));
r7append(((T7*)a1),((T0*)ms14_138));
}
void r389id_extra_information(T0* a1){
r48put_string(((T48*)a1),((T0*)ms52_9724));
/*[IF*/
{/*AT*/r48put_string(((T48*)a1),((T0*)ms52_1476));
}
/*FI]*/
}
void r389gc_mark_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms14_8764));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
void r389gc_info_nb_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_14920));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
T0* r389static_base_class_name(T389* C){
T0* R=NULL;
R=X52static_base_class_name((/*RF2*/(C)->_expanded_type/*20*/));
return R;
}
void r389c_type_for_external_in(T0* a1){
/*[IF*/
{/*AT*/r7append(((T7*)a1),((T0*)ms14_1736a));
r7extend(((T7*)a1),((T3)'\52'));
}
/*FI]*/
}
void r389gc_store_in(T389* C,T0* a1){
r7append(((T7*)a1),((T0*)ms52_2785));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
}
void r389fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r389c_type_for_target_in(T389* C,T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,a1);
r7extend(((T7*)a1),((T3)'\52'));
}
T6 r389stupid_switch(T389* C,T0* a1){
T6 R=0;
R=X52stupid_switch((/*RF2*/(C)->_expanded_type/*20*/),a1);
return R;
}
void r389demangling_in(T389* C,T0* a1){
/*[IF*/
{/*AT*/r7extend(((T7*)a1),((T3)'R'));
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),/*(IRF4.3run_time_mark*/(/*RF2*/(C)->_written_mark/*16*/)/*)*/);
}
void r389gc_initialize_chunk(T389* C,T2 a1,T0* a2){
r7extend(((T7*)a2),((T3)'\52'));
r389gc_store_chunk_in(C,a2);
r7append(((T7*)a2),((T0*)ms14_266a));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms14_138));
r389gc_store_in(C,a2);
r7append(((T7*)a2),((T0*)ms52_1715));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms52_1005));
r389gc_store_chunk_in(C,a2);
r7append(((T7*)a2),((T0*)ms52_11742));
r389gc_store_left_in(C,a2);
r7append(((T7*)a2),((T0*)ms14_266a));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms52_34060));
r389gc_store_in(C,a2);
r7append(((T7*)a2),((T0*)ms52_2040));
}
T0* r389base_class_name(T389* C){
T0* R=NULL;
R=X52base_class_name((/*RF2*/(C)->_expanded_type/*20*/));
return R;
}
void r389c_frame_descriptor(T389* C){
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
{/*AT*/r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'R'));
}
/*FI]*/
r2append_in(/*(IRF4.6id*/(/*RF2*/(((T50*)((/*RF2*/(C)->_run_class/*12*/))))->_id/*4*/)/*)*/,oBC13c_frame_descriptor_format);
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\45'));
}
void r389from_expanded(T389* C,T68 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_expanded_type)=a2;
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms389_8520));
r7append((T7*)(((T0*)ms52_783104)),X52run_time_mark(a2));
(/*SFN*/C->_written_mark)=((/*UT*/(void)((T21*)(r389string_aliaser()))),r21item(((T0*)ms52_783104)));
(/*SFN*/C->_run_class)=r49run_class((T0*)C);
}
void r136compile_to_c_old(T136* C){
X104compile_to_c_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r136runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X104to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X104start_position(a1),&se_tmp0)));
}
r136fatal_error(((T0*)ms116_16290));
}
/*FI]*/
return R;
}
void r136run_feature_has_result(T136* C){
/*[IF*/
if((X334result_type((/*RF2*/(C)->_run_feature/*8*/)))==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*8*/)),&se_tmp0)));
}
r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
r136fatal_error(((T0*)ms115_53215));
}
/*FI]*/
}
T2 r136static_value(T136* C){
T2 R=0;
/*[IF*/
if(X52is_integer(X104result_type((/*RF2*/(C)->_target/*4*/)))){
/*[IF*/
if(X104is_static((/*RF2*/(C)->_target/*4*/))){
R=-(X104static_value((/*RF2*/(C)->_target/*4*/)));
}
/*FI]*/
}
/*FI]*/
return R;
}
void r136run_feature_match(T136* C){
r136run_feature_has_result(C);
/*[IF*/
if((X334arguments((/*RF2*/(C)->_run_feature/*8*/)))!=((void*)(NULL))){
r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
{T68 se_tmp0;
r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*8*/)),&se_tmp0)));
}
r136fatal_error(((T0*)ms132_50092));
}
/*FI]*/
}
void r136dca_inline_argument(T136* C,T0* a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\55');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
X104dca_inline_argument((/*RF2*/(C)->_target/*4*/),a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
T0* r136add_comment(T136* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r136with(T136* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_target)=a1;
(/*SFN*/C->_feature_name)=a2;
(/*SFN*/C->_run_feature)=a3;
r136run_feature_match(C);
}
void r136mapping_c_target(T136* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r325call_invariant_start(a1);
_actual_type=X52run_type(r136result_type(C));
/*[IF*/
if(X52is_reference(_actual_type)){
/*[IF*/
if(X52is_reference(a1)){
X52mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r136compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
r136compile_to_c(C);
}
/*FI]*/
}
else{
/*[IF*/
if(X52is_reference(a1)){
r136compile_to_c(C);
}
else{
/*[IF*/
if(X52need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r136compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
r136compile_to_c(C);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
void r136afd_check(T136* C){
T0* _running=NULL;
T0* _rc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*8*/))!=((void*)(NULL))){
_rc=X52run_class(X104result_type((/*RF2*/(C)->_target/*4*/)));
_running=(/*RF2*/(((T50*)_rc))->_running/*9*/);
/*[IF*/
if((_running)==((void*)(NULL))){
}
else if((r53count(((T53*)_running)))>(1)){
r351update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*8*/));
}
/*FI]*/
}
/*FI]*/
X104afd_check((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r136c_declare_for_old(T136* C){
X104c_declare_for_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r136collect_c_tmp(T136* C){
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*8*/))!=((void*)(NULL))){
X334collect_c_tmp((/*RF2*/(C)->_run_feature/*8*/));
}
/*FI]*/
X104collect_c_tmp((/*RF2*/(C)->_target/*4*/));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r136operator(void){
T0* R=NULL;
R=((T0*)ms15_45);
return R;
}
T6 r136use_current(T136* C){
T6 R=0;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(R){
}
else if(X104is_current((/*RF2*/(C)->_target/*4*/))){
R=X334use_current((/*RF2*/(C)->_run_feature/*8*/));
}
else{
R=X104use_current((/*RF2*/(C)->_target/*4*/));
}
/*FI]*/
return R;
}
T0* r136to_runnable(T136* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _t=NULL;
_t=r136runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
_rf=r136run_feature_for(C,_t,a1);
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*8*/))==((void*)(NULL))){
(/*SFN*/C->_target)=_t;
(/*SFN*/C->_run_feature)=_rf;
r136run_feature_match(C);
R=((T0*)(C));
}
else if((_t)==((void*)((/*RF2*/(C)->_target/*4*/)))){
R=((T0*)(C));
}
else{
{T136*n=((T136*)malloc(sizeof(*n))/*16*/);
*n=M136;
r136with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_rf);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T2 r136to_integer(T136* C){
T2 R=0;
T0* _rf1=NULL;
_rf1=(/*RF2*/(C)->_run_feature/*8*/);
if(NULL!=(_rf1)){
switch(((T0*)_rf1)->id){
case 388:
break;
default:
_rf1=NULL;
}
}/*[IF*/
if((_rf1)==((void*)(NULL))){
r136error(/*(IRF4.6start_position*/(/*RF2*/(((T133*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/,((T0*)ms14_45441));
}
else{
R=X104to_integer((/*RF2*/(((T388*)_rf1))->_value/*28*/));
}
/*FI]*/
return R;
}
T6 r136is_static(T136* C){
T6 R=0;
/*[IF*/
if(X52is_integer(X104result_type((/*RF2*/(C)->_target/*4*/)))){
/*[IF*/
if(X104is_static((/*RF2*/(C)->_target/*4*/))){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
void r136finalize(T136* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(/*RF2*/(C)->_run_feature/*8*/);
_rc=X52run_class(/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)_rf))->_current_type/*8*/));
(/*SFN*/C->_run_feature)=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/),_rf);
}
void r136error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0* r136result_type(T136* C){
T0* R=NULL;
R=X334result_type((/*RF2*/(C)->_run_feature/*8*/));
/*[IF*/
if(X52is_like_current(R)){
R=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*8*/)))->_current_type/*8*/);
}
/*FI]*/
return R;
}
T6 r136can_be_dropped(T136* C){
T6 R=0;
/*[IF*/
if(X104can_be_dropped((/*RF2*/(C)->_target/*4*/))){
R=X334can_be_dropped((/*RF2*/(C)->_run_feature/*8*/));
}
/*FI]*/
return R;
}
T6 r136call_proc_call_stupid_switch(T136* C,T0* a1){
T6 R=0;
/*[IF*/
{/*AT*/R=1;
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(X104is_current((/*RF2*/(C)->_target/*4*/))){
/*[IF*/
if(r49same_base_feature((/*RF2*/(C)->_run_feature/*8*/),a1)){
R=(X334stupid_switch((/*RF2*/(C)->_run_feature/*8*/),a1))!=((void*)(NULL));
}
else{
R=0;
}
/*FI]*/
}
else{
R=X104stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r136run_feature_for(T136* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
_rt=X104result_type(a1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_rc=X52run_class(_rt);
/*[IF*/
if((_rc)!=((void*)(NULL))){
_bc=r50base_class(((T50*)_rc));
R=r51run_feature_for(((T51*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((R)==((void*)(NULL))){
r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms116_39025);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
T0* r136static_result_base_class(T136* C){
T0* R=NULL;
T0* _cn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _bc=NULL;
_bc=X104static_result_base_class((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if((_bc)!=((void*)(NULL))){
_e_feature=r51e_feature(((T51*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
/*[IF*/
if((_e_feature)!=((void*)(NULL))){
_rt=X90result_type(_e_feature);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_cn=X52static_base_class_name(_rt);
/*[IF*/
if((_cn)!=((void*)(NULL))){
R=r61base_class(((T61*)_cn));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r136make(T136* C,T68 a1,T0* a2){
{T133*n=((T133*)malloc(sizeof(*n))/*20*/);
*n=M133;
r133make(n,r136operator(),a1);
(/*SFN*/C->_feature_name)=((T0*)n);
}
(/*SFN*/C->_target)=a2;
}
void r136fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r136assertion_check(T136* C,T3 a1){
/*[IF*/
if((a1)==(((T3)'R'))){
X334vape_check_from((/*RF2*/(C)->_run_feature/*8*/),/*(IRF4.6start_position*/(/*RF2*/(((T133*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
}
/*FI]*/
X104assertion_check((/*RF2*/(C)->_target/*4*/),a1);
}
void r136compile_to_c(T136* C){
/*[IF*/
if((r47boost((T47*)(oBC13run_control)))&&(X52is_basic_eiffel_expanded(/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*8*/)))->_current_type/*8*/)))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\55');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
X104compile_to_c((/*RF2*/(C)->_target/*4*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.6call_proc_call_c2c*/{T136* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
}
/*FI]*/
}
T6 r136stupid_switch(T136* C,T0* a1){
T6 R=0;
R=r136call_proc_call_stupid_switch(C,a1);
/*[IF*/
if(R){
R=!(X52is_native_array(r136result_type(C)));
}
/*FI]*/
return R;
}
T2 r136isa_dca_inline_argument(T136* C){
T2 R=0;
/*[IF*/
if(X52is_integer(r136result_type(C))){
R=X104isa_dca_inline_argument((/*RF2*/(C)->_target/*4*/));
}
/*FI]*/
return R;
}
T0* r212try_to_undefine_aux(T212* C,T0* a1,T0* a2){
T0* R=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=r212start_position(C),&se_tmp0)));
}
{T68 se_tmp0;
r212error((*(se_tmp0=X82start_position(a1),&se_tmp0)),((T0*)ms200_98784));
}
r51fatal_undefine(((T51*)a2),a1);
return R;
}
T0* r212try_to_undefine(T212* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
_fn2=r83feature_name((T83*)((/*RF2*/(C)->_names/*8*/)),X82to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X82undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r212try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X284set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r212merge_header_comments(C,R);
}
else{
r51fatal_undefine(((T51*)a2),a1);
}
/*FI]*/
return R;
}
void r212check_obsolete(T212* C,T68 a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r212to_run_feature(T212* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(a1);
R=r50at(((T50*)_rc),a2);
if(NULL!=(R)){
switch(((T0*)R)->id){
case 388:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
{T388*n=((T388*)malloc(sizeof(*n))/*36*/);
*n=M388;
r388make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r212error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T6 r212is_not_mergeable_with(T212* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL))){
R=(X90result_type(a1))!=((void*)(NULL));
}
else{
R=(X90result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_64152);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else{
/*[IF*/
{/*AT*/R=(X90arguments(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_82612);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else {/*AT*/}
/*FI]*/
}
/*FI]*/
r212merge_header_comments(C,a1);
return R;
}
void r212make(T212* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T212*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_result_type)=a2;
(/*SFN*/C->_value_mem)=a3;
}
void r212add_into(T212* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
{T68 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r83count((T83*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i);
/*[IF*/
if(r91has(((T91*)a1),X82to_key(_fn))){
_fn=/*SSFRF4*//*X90first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T198*)(r91at(((T91*)a1),X82to_key(_fn))))->_names/*8*/))))->_first/*0*/)/*)*/;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms90_41470);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(_fn);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
else{
r91put(((T91*)a1),(T0*)C,X82to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r212can_hide(T212* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(X90result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL)))||((X90result_type(a1))==((void*)(NULL)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r212error((*(se_tmp0=r212start_position(C),&se_tmp0)),((T0*)ms90_64152));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X90arguments(a1)))){
/*[IF*/
{/*AT*/{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r212error((*(se_tmp0=r212start_position(C),&se_tmp0)),((T0*)ms90_82612));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(X52is_a_in((/*RF2*/(C)->_result_type/*20*/),X90result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_51136);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((/*RF2*/(((T50*)a2))->_current_type/*0*/));
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r212merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
void r212merge_header_comments(T212* C,T0* a1){
/*[IF*/
if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/);
}
else if((/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X90set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}
T68 r212start_position(T212* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X82start_position(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}
void r123compile_to_c_old(T123* C){
X104compile_to_c_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
{/*AT*//*SSPRF3*//*X139compile_to_c_old*/r139compile_to_c_old((T139*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}
T0* r123runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X104to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X104start_position(a1),&se_tmp0)));
}
r123fatal_error(((T0*)ms116_16290));
}
/*FI]*/
return R;
}
void r123run_feature_has_result(T123* C){
/*[IF*/
if((X334result_type((/*RF2*/(C)->_run_feature/*16*/)))==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*16*/)),&se_tmp0)));
}
r66add_position((/*RF2*/((T129*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
r123fatal_error(((T0*)ms115_53215));
}
/*FI]*/
}
void r123run_feature_match(T123* C,T0* a1){
r123run_feature_has_result(C);
X139match_with((/*RF2*/(C)->_arguments/*8*/),(/*RF2*/(C)->_run_feature/*16*/),a1);
}
void r123dca_inline_argument(T123* C,T0* a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
X104dca_inline_argument((/*RF2*/(C)->_target/*4*/),a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\53');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
X104dca_inline_argument(r123arg1(C),a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
T0* r123add_comment(T123* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r123with(T123* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
(/*SFN*/C->_target)=a1;
(/*SFN*/C->_feature_name)=a2;
(/*SFN*/C->_arguments)=a3;
(/*SFN*/C->_run_feature)=a4;
r123run_feature_match(C,a5);
}
void r123mapping_c_target(T123* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r325call_invariant_start(a1);
_actual_type=X52run_type(r123result_type(C));
/*[IF*/
if(X52is_reference(_actual_type)){
/*[IF*/
if(X52is_reference(a1)){
X52mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T123* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T123* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T123* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X52need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T123* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T123* C1=C;
r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
void r123afd_check(T123* C){
T0* _running=NULL;
T0* _rc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
_rc=X52run_class(X104result_type((/*RF2*/(C)->_target/*4*/)));
_running=(/*RF2*/(((T50*)_rc))->_running/*9*/);
/*[IF*/
if((_running)==((void*)(NULL))){
}
else if((r53count(((T53*)_running)))>(1)){
r351update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*16*/));
}
/*FI]*/
}
/*FI]*/
X104afd_check((/*RF2*/(C)->_target/*4*/));
/*[IF*/
{/*AT*//*SSPRF3*//*X139afd_check*/r139afd_check((T139*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}
void r123c_declare_for_old(T123* C){
X104c_declare_for_old((/*RF2*/(C)->_target/*4*/));
/*[IF*/
{/*AT*//*SSPRF3*//*X139c_declare_for_old*/r139c_declare_for_old((T139*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}
void r123collect_c_tmp(T123* C){
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))!=((void*)(NULL))){
X334collect_c_tmp((/*RF2*/(C)->_run_feature/*16*/));
}
/*FI]*/
X104collect_c_tmp((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*8*/))!=((void*)(NULL))){
/*SSPRF3*//*X139collect_c_tmp*/r139collect_c_tmp((T139*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
}
T0* r123operator(void){
T0* R=NULL;
R=((T0*)ms15_43);
return R;
}
T6 r123use_current(T123* C){
T6 R=0;
/*[IF*/
{/*AT*/R=/*SSFRF4*//*X139use_current*/r139use_current((T139*)((/*RF2*/(C)->_arguments/*8*/)));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X104is_current((/*RF2*/(C)->_target/*4*/))){
R=X334use_current((/*RF2*/(C)->_run_feature/*16*/));
}
else{
R=X104use_current((/*RF2*/(C)->_target/*4*/));
}
/*FI]*/
return R;
}
T0* r123runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=X139to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X139start_position(a1),&se_tmp0)));
}
r123fatal_error(((T0*)ms14_12870));
}
/*FI]*/
return R;
}
T0* r123to_runnable(T123* C,T0* a1){
T0* R=NULL;
T0* _target_type=NULL;
T0* _argument_type=NULL;
T0* _rf=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r123runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
_a=r123runnable_args((/*RF2*/(C)->_arguments/*8*/),a1);
_target_type=X104result_type(_t);
_argument_type=X104result_type(r123arg1(C));
/*[IF*/
if(X52is_real(_argument_type)){
/*[IF*/
if(X52is_integer(_target_type)){
_t=r341implicit_cast((T341*)(oBC13conversion_handler),_t,_argument_type);
}
/*FI]*/
}
else if(X52is_double(_argument_type)){
/*[IF*/
if((X52is_integer(_target_type))||(X52is_real(_target_type))){
_t=r341implicit_cast((T341*)(oBC13conversion_handler),_t,_argument_type);
}
/*FI]*/
}
/*FI]*/
_rf=r123run_feature_for(C,_t,a1);
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*16*/))==((void*)(NULL))){
(/*SFN*/C->_target)=_t;
(/*SFN*/C->_arguments)=_a;
(/*SFN*/C->_run_feature)=_rf;
r123run_feature_match(C,a1);
R=((T0*)(C));
}
else if(((_t)==((void*)((/*RF2*/(C)->_target/*4*/))))&&((_a)==((void*)((/*RF2*/(C)->_arguments/*8*/))))){
R=((T0*)(C));
}
else{
{T123*n=((T123*)malloc(sizeof(*n))/*24*/);
*n=M123;
r123with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_a,_rf,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T2 r123to_integer(T123* C){
T2 R=0;
r123error(/*(IRF4.6start_position*/(/*RF2*/(((T129*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/,((T0*)ms14_45441));
return R;
}
T6 r123is_static(T123* C){
T6 R=0;
/*[IF*/
if(X52is_integer(r123result_type(C))){
/*[IF*/
if((X104is_static((/*RF2*/(C)->_target/*4*/)))&&(X104is_static(r123arg1(C)))){
R=1;
(/*SFN*/C->_static_value_mem)=(X104static_value((/*RF2*/(C)->_target/*4*/)))+(X104static_value(r123arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
void r123finalize(T123* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(/*RF2*/(C)->_run_feature/*16*/);
_rc=X52run_class(/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)_rf))->_current_type/*8*/));
(/*SFN*/C->_run_feature)=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/),_rf);
}
void r123error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0* r123result_type(T123* C){
T0* R=NULL;
T0* _tla=NULL;
R=X334result_type((/*RF2*/(C)->_run_feature/*16*/));
/*[IF*/
if(X52is_like_current(R)){
R=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*16*/)))->_current_type/*8*/);
}
else{
_tla=R;
if(NULL!=(_tla)){
switch(((T0*)_tla)->id){
case 257:
break;
default:
_tla=NULL;
}
}/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X104result_type(r123arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r123arg1(T123* C){
T0* R=NULL;
R=/*SSFRF4*//*X139first*//*(IRF4.3first*/(/*RF2*/((T139*)((/*RF2*/(C)->_arguments/*8*/)))->_first_one/*4*/)/*)*/;
return R;
}
T6 r123call_proc_call_stupid_switch(T123* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*8*/))==((void*)(NULL))){
R=1;
}
else{
R=/*SSFRF4*//*X139stupid_switch*/r139stupid_switch((T139*)((/*RF2*/(C)->_arguments/*8*/)),a1);
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(X104is_current((/*RF2*/(C)->_target/*4*/))){
/*[IF*/
if(r49same_base_feature((/*RF2*/(C)->_run_feature/*16*/),a1)){
R=(X334stupid_switch((/*RF2*/(C)->_run_feature/*16*/),a1))!=((void*)(NULL));
}
else{
R=0;
}
/*FI]*/
}
else{
R=X104stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r123run_feature_for(T123* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _bc=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
_rt=X104result_type(a1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_rc=X52run_class(_rt);
/*[IF*/
if((_rc)!=((void*)(NULL))){
_bc=r50base_class(((T50*)_rc));
R=r51run_feature_for(((T51*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((R)==((void*)(NULL))){
r66add_position((/*RF2*/((T129*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms116_39025);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
T0* r123static_result_base_class(T123* C){
T0* R=NULL;
T0* _cn=NULL;
T0* _rt=NULL;
T0* _e_feature=NULL;
T0* _bc=NULL;
_bc=X104static_result_base_class((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if((_bc)!=((void*)(NULL))){
_e_feature=r51e_feature(((T51*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
/*[IF*/
if((_e_feature)!=((void*)(NULL))){
_rt=X90result_type(_e_feature);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_cn=X52static_base_class_name(_rt);
/*[IF*/
if((_cn)!=((void*)(NULL))){
R=r61base_class(((T61*)_cn));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r123make(T123* C,T0* a1,T68 a2,T0* a3){
(/*SFN*/C->_target)=a1;
{T129*n=((T129*)malloc(sizeof(*n))/*20*/);
*n=M129;
r129make(n,r123operator(),a2);
(/*SFN*/C->_feature_name)=((T0*)n);
}
{T139*n=((T139*)malloc(sizeof(*n))/*16*/);
*n=M139;
/*[IRF3.3make_1*/((((T139*)(n)))->_first_one)=(a3);
/*]*/
(/*SFN*/C->_arguments)=((T0*)n);
}
}
void r123fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r123assertion_check(T123* C,T3 a1){
/*[IF*/
if((a1)==(((T3)'R'))){
X334vape_check_from((/*RF2*/(C)->_run_feature/*16*/),/*(IRF4.6start_position*/(/*RF2*/(((T129*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
}
/*FI]*/
X104assertion_check((/*RF2*/(C)->_target/*4*/),a1);
X104assertion_check(r123arg1(C),a1);
}
T6 r123stupid_switch(T123* C,T0* a1){
T6 R=0;
R=r123call_proc_call_stupid_switch(C,a1);
/*[IF*/
if(R){
R=!(X52is_native_array(r123result_type(C)));
}
/*FI]*/
return R;
}
T2 r123isa_dca_inline_argument(T123* C){
T2 R=0;
/*[IF*/
if(X52is_integer(r123result_type(C))){
R=X104isa_dca_inline_argument((/*RF2*/(C)->_target/*4*/));
/*[IF*/
if((R)==(-(1))){
R=X104isa_dca_inline_argument(r123arg1(C));
}
else if((R)>(0)){
/*[IF*/
if((X104isa_dca_inline_argument(r123arg1(C)))>=(0)){
R=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r226make(T226* C,T0* a1){
{T227*n=((T227*)malloc(sizeof(*n))/*16*/);
*n=M227;
r227with_capacity(n,4,1);
(/*SFN*/C->_list)=((T0*)n);
}
r227add_last((T227*)((/*RF2*/(C)->_list/*0*/)),a1);
}
T2 r226compile_to_c(T226* C){
T2 R=0;
T2 _i=0;
T2 _previous=0;
T2 _state=0;
_i=1;
while (!((_state)==(2)))
{
{int z1=_state;
if((0==z1)){
/*[IF*/
if((_i)>((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/))){
_state=2;
R=_previous;
}
else{
_previous=r225compile_to_c((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)),0);
{int z2=_previous;
if((3==z2)){
_state=1;
}
else
if((2==z2)){
}
else {R=1;
_state=2;
}}
}
/*FI]*/
}
else{/*[IF*/
if((_i)>((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/))){
_state=2;
{int z2=_previous;
if((1==z2)){
R=1;
}
else{R=3;
}}
}
else{
_previous=r225compile_to_c((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)),1);
{int z2=_previous;
if((3==z2)){
}
else
if((2==z2)){
}
else {_state=2;
R=1;
}}
}
/*FI]*/
}}
_i=(_i)+(1);
}
return R;
}
void r226afd_check(T226* C){
T2 _i=0;
_i=(/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
r225afd_check((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)));
_i=(_i)-(1);
}
}
void r226collect_c_tmp(T226* C){
T2 _i=0;
_i=(/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
r225collect_c_tmp((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)));
_i=(_i)-(1);
}
}
T6 r226use_current(T226* C){
T6 R=0;
T2 _i=0;
_i=1;
while (!(((_i)>((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/)))||(R)))
{
R=r225use_current((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)));
_i=(_i)+(1);
}
return R;
}
T6 r226stupid_switch(T226* C,T0* a1){
T6 R=0;
T2 _i=0;
R=1;
_i=1;
while (!((!(R))||((_i)>((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/)))))
{
R=r225stupid_switch((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)),a1);
_i=(_i)+(1);
}
return R;
}
T0* r226to_runnable(T226* C,T0* a1){
T0* R=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*4*/))!=((void*)(NULL))){
{T226*n=((T226*)malloc(sizeof(*n))/*8*/);
*n=M226;
r226make(n,/*(IRF4.6first*/((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_storage/*0*/))[0]/*)*/);
R=((T0*)n);
}
_i=2;
while (!((_i)>((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/))))
{
/*[IRF3.5add_last*/r227add_last(((T227*)((/*RF2*/(((T226*)R))->_list/*0*/))),r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i));
/*]*/
_i=(_i)+(1);
}
R=r226to_runnable(((T226*)R),a1);
}
else{
(/*SFN*/C->_current_type)=a1;
_i=1;
while (!(((_i)>((/*RF2*/((T227*)((/*RF2*/(C)->_list/*0*/)))->_upper/*8*/)))||((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)>(0))))
{
/*[IRF3.6put*/{T227* C1=(T227*)((/*RF2*/(C)->_list/*0*/));
T0* b1=r225to_runnable((T225*)(r227item((T227*)((/*RF2*/(C)->_list/*0*/)),_i)),a1);
T2 b2=_i;
((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
}/*]*/
_i=(_i)+(1);
}
R=((T0*)(C));
}
/*FI]*/
return R;
}
void r51check_expanded_with(T51* C,T0* a1){
T0* _rf=NULL;
/*[IF*/
if((/*RF2*/(C)->_is_deferred/*16*/)){
r66add_type(a1,((T0*)ms14_11292));
r51fatal_error(((T0*)ms51_121824));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_creation_clause_list/*38*/))!=((void*)(NULL))){
r77check_expanded_with((T77*)((/*RF2*/(C)->_creation_clause_list/*38*/)),a1);
}
/*FI]*/
_rf=r51expanded_initializer(C,a1);
}
T6 r51is_subclass_of(T51* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_isom/*62*/))==((void*)(NULL))){
R=1;
}
else if(r64fast_has((T64*)((/*RF2*/(C)->_isom/*62*/)),a1)){
R=1;
}
else if(((/*RF2*/(((T51*)a1))->_isom/*62*/))==((void*)(NULL))){
}
else{
/*[IF*/
if(r51is_any(((T51*)a1))){
R=1;
}
else{
/*[IRF3.3clear*/((((T64*)((T64*)(oBC51visited))))->_upper)=(-(1));
/*]*/
R=r51is_subclass_of_aux(C,a1);
}
/*FI]*/
/*[IF*/
if(R){
r64add_last((T64*)((/*RF2*/(C)->_isom/*62*/)),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r51inherit_cycle_check(T51* C){
T2 _i=0;
r64add_last((T64*)(oBC51visited),(T0*)C);
/*[IF*/
if((/*(IRF4.6first*/((/*RF2*/((T64*)(oBC51visited))->_storage/*0*/))[0]/*)*/)==((void*)(C))){
/*[IRF3.6append*/{T0* b1=((T0*)ms51_36828);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
_i=0;
while (!((_i)>((/*RF2*/((T64*)(oBC51visited))->_upper/*8*/))))
{
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/((T51*)(/*(IRF4.6item*/((/*RF2*/((T64*)(oBC51visited))->_storage/*0*/))[_i]/*)*/))->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IF*/
if((_i)<((/*RF2*/((T64*)(oBC51visited))->_upper/*8*/))){
/*[IRF3.6append*/{T0* b1=((T0*)ms51_152);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
r51fatal_error(((T0*)ms51_1070));
}
else if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
r57inherit_cycle_check((T57*)((/*RF2*/(C)->_parent_list/*34*/)));
}
/*FI]*/
}
T0* r51root_procedure_name(T51* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_creation_clause_list/*38*/))==((void*)(NULL))){
r66add_position((/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_start_position/*0*/));
r51fatal_error(((T0*)ms51_140505));
}
else{
R=r77root_procedure_name((T77*)((/*RF2*/(C)->_creation_clause_list/*38*/)),a1);
/*[IF*/
if((R)==((void*)(NULL))){
r66add_position((/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_start_position/*0*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms51_33618);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r51fatal_error(((T0*)ms51_107460));
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r51super_e_feature(T51* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
/*[IF*/
if(r51is_general(C)){
}
else{
R=r51e_feature((T51*)(r51class_any()),a1);
}
/*FI]*/
}
else{
R=r57e_feature((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
/*FI]*/
return R;
}
void r51set_parent_list(T51* C,T68 a1,T0* a2,T0* a3){
{T57*n=((T57*)malloc(sizeof(*n))/*20*/);
*n=M57;
r57make(n,(T0*)C,a1,a2,a3);
(/*SFN*/C->_parent_list)=((T0*)n);
}
}
T0*oBC13class_any=NULL;
int fBC13class_any=0;
T0* r51class_any(void){
if(fBC13class_any==0){fBC13class_any=1;{
oBC13class_any=r49get_class(((T0*)ms15_696));
}}
return oBC13class_any;
}
void r51add_index_clause(T51* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_index_list/*8*/))==((void*)(NULL))){
{T322*n=((T322*)malloc(sizeof(*n))/*4*/);
*n=M322;
r322make(n,a1);
(/*SFN*/C->_index_list)=((T0*)n);
}
}
else{
/*[IRF3.5add_last*/r323add_last(((T323*)((/*RF2*/((T322*)((/*RF2*/(C)->_index_list/*8*/)))->_list/*0*/))),a1);
/*]*/
}
/*FI]*/
}
void r51set_invariant(T51* C,T68 a1,T0* a2,T0* a3){
/*[IF*/
if(((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))){
{T102*n=((T102*)malloc(sizeof(*n))/*24*/);
*n=M102;
r102make(n,a1,a2,a3);
(/*SFN*/C->_class_invariant)=((T0*)n);
}
}
/*FI]*/
}
void r51warning(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_warning((T66*)(oBC13eh));
}
void r51collect_assertion(T51* C,T0* a1){
T0* _fn_key=NULL;
_fn_key=X82to_key(a1);
/*[IF*/
if(r91has((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),_fn_key)){
r383assertion_add_last((T383*)(oBC13assertion_collector),r91at((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),_fn_key));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
/*[IF*/
if(r51is_general(C)){
}
else{
r51collect_assertion((T51*)(r51class_any()),a1);
}
/*FI]*/
}
else{
r57collect_assertion((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
/*FI]*/
}
void r51set_obsolete_type_string(T51* C,T0* a1){
(/*SFN*/C->_obsolete_type_string)=a1;
/*[IF*/
if(((/*RF2*/(C)->_obsolete_type_string/*30*/))!=((void*)(NULL))){
/*[IF*/
if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
}
else if((/*RF2*/((T49*)(oBC13small_eiffel))->_pretty_flag/*6*/)){
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms51_4164);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_8175);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T161*)((/*RF2*/(C)->_obsolete_type_string/*30*/)))->_to_string/*12*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66add_position((/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_start_position/*0*/));
r66print_as_warning((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
T0* r51look_up_for(T51* C,T0* a1,T0* a2){
T0* R=NULL;
T2 _i=0;
T0* _super_fn=NULL;
T0* _fnl=NULL;
T0* _cst_att=NULL;
T0* _fn_key=NULL;
T0* _super=NULL;
_fn_key=X82to_key(a2);
/*[IF*/
if(r91has((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),_fn_key)){
R=r91at((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),_fn_key);
_super=r51super_look_up_for(C,a1,a2);
/*[IF*/
if((_super)!=((void*)(NULL))){
r51vdrd6(a1,_super,R);
_cst_att=_super;
if(NULL!=(_cst_att)){
switch(((T0*)_cst_att)->id){
case 211:case 198:case 206:case 209:case 210:case 204:case 205:case 212:
break;
default:
_cst_att=NULL;
}
}/*[IF*/
if((_cst_att)!=((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(_super),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(R),&se_tmp0)));
}
r51fatal_error(((T0*)ms51_82177));
}
/*FI]*/
_fnl=/*SSWARF2*//*X90names*/(/*RF2*/(((T198*)_super))->_names/*8*/);
_i=r83count(((T83*)_fnl));
while (!((_i)<(1)))
{
_super_fn=r83item(((T83*)_fnl),_i);
/*[IF*/
if(X82is_frozen(_super_fn)){
/*[IF*/
if((X82to_key(_super_fn))==((void*)(_fn_key))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_super_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(R),&se_tmp0)));
}
r51fatal_error(((T0*)ms51_66429));
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if(!(X90can_hide(R,_super,a1))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(_super),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(R),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms51_89544);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_warning((T66*)(oBC13eh));
}
/*FI]*/
/*[IF*/
if(X90is_deferred(_super)){
}
else if(r51has_redefine(C,a2)){
}
else{
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(R),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(_super),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms51_30576);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_32700);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
else{
R=r51super_look_up_for(C,a1,a2);
}
/*FI]*/
return R;
}
T6 r51has_creation(T51* C,T0* a1){
T6 R=0;
T0* _cn=NULL;
T0* _bc=NULL;
T0* _cc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_creation_clause_list/*38*/))==((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_35616);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
r66print_as_error((T66*)(oBC13eh));
}
else{
_cc=r77get_clause((T77*)((/*RF2*/(C)->_creation_clause_list/*38*/)),a1);
/*[IF*/
if((_cc)==((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=((T0*)ms14_7263);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(a1);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_72324);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
{T68 se_tmp0;
r51error((*(se_tmp0=X82start_position(a1),&se_tmp0)),((T0*)ms14_46));
}
}
else{
R=1;
_bc=X82origin_base_class(a1);
/*[IF*/
if((_bc)!=((void*)(NULL))){
_cn=(/*RF2*/(((T51*)_bc))->_name/*18*/);
R=r99gives_permission_to((T99*)((/*RF2*/(((T78*)_cc))->_clients/*8*/)),_cn);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
{T68 se_tmp0;
r51error((*(se_tmp0=X82start_position(a1),&se_tmp0)),((T0*)ms51_43966));
}
}
/*FI]*/
return R;
}
T0* r51up_to_original(T51* C,T0* a1,T0* a2){
T0* R=NULL;
/*[IF*/
if(r51proper_has(C,a2)){
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
R=r51new_name_of_original(((T51*)a1),(T0*)C,a2);
}
else{
R=r57up_to_original((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
R=r51new_name_of_original(((T51*)a1),(T0*)C,a2);
}
/*FI]*/
}
/*FI]*/
}
else if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
R=r57up_to_original((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1,a2);
}
else if(r51is_general(C)){
}
else{
R=r51up_to_original((T51*)(r51class_any()),a1,a2);
}
/*FI]*/
return R;
}
void r51error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
void r51add_creation_clause(T51* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_creation_clause_list/*38*/))==((void*)(NULL))){
{T77*n=((T77*)malloc(sizeof(*n))/*4*/);
*n=M77;
r77make(n,a1);
(/*SFN*/C->_creation_clause_list)=((T0*)n);
}
}
else{
/*[IRF3.5add_last*/r79add_last(((T79*)((/*RF2*/((T77*)((/*RF2*/(C)->_creation_clause_list/*38*/)))->_list/*0*/))),a1);
/*]*/
}
/*FI]*/
}
T6 r51proper_has(T51* C,T0* a1){
T6 R=0;
R=r91has((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),X82to_key(a1));
return R;
}
T6 r51has_redefine(T51* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
R=r57has_redefine((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
/*FI]*/
return R;
}
T0* r51run_ensure(T51* C,T0* a1){
T0* R=NULL;
T0* _ct=NULL;
r383ensure_start((T383*)(oBC13assertion_collector));
_ct=/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)a1))->_current_type/*8*/);
r51collect_assertion(C,/*SSWARF2*//*X334name*/(/*RF2*/(((T368*)a1))->_name/*12*/));
R=r383ensure_end((T383*)(oBC13assertion_collector),a1,_ct);
return R;
}
void r51make(T51* C,T0* a1,T0* a2,T2 a3){
(/*SFN*/C->_path)=a1;
{T61*n=((T61*)malloc(sizeof(*n))/*12*/);
*n=M61;
/*[IRF3.3unknown_position*/((((T61*)(n)))->_to_string)=(a2);
/*]*/
(/*SFN*/C->_name)=((T0*)n);
}
(/*SFN*/C->_id)=a3;
r49add_base_class((T49*)(oBC13small_eiffel),(T0*)C);
{T64*n=((T64*)malloc(sizeof(*n))/*12*/);
*n=M64;
r64with_capacity(n,16);
(/*SFN*/C->_isom)=((T0*)n);
}
{T91*n=((T91*)malloc(sizeof(*n))/*36*/);
*n=M91;
/*[IRF3.4make*/r91with_capacity(n,32);
/*]*/
(/*SFN*/C->_feature_dictionary)=((T0*)n);
}
}
void r51vdrd6(T0* a1,T0* a2,T0* a3){
T0* _rt2=NULL;
T0* _rt1=NULL;
T0* _ct=NULL;
T0* _writable_attribute=NULL;
_writable_attribute=a2;
if(NULL!=(_writable_attribute)){
switch(((T0*)_writable_attribute)->id){
case 315:
break;
default:
_writable_attribute=NULL;
}
}/*[IF*/
if((_writable_attribute)!=((void*)(NULL))){
_writable_attribute=a3;
if(NULL!=(_writable_attribute)){
switch(((T0*)_writable_attribute)->id){
case 315:
break;
default:
_writable_attribute=NULL;
}
}/*[IF*/
if((_writable_attribute)==((void*)(NULL))){
r51fatal_error_vdrd6(a2,a3,((T0*)ms51_196786));
}
else{
_ct=(/*RF2*/(((T50*)a1))->_current_type/*0*/);
_rt1=X52to_runnable(X90result_type(a2),_ct);
_rt2=X52to_runnable(X90result_type(a3),_ct);
/*[IF*/
if(X52is_reference(_rt1)){
/*[IF*/
if(X52is_reference(_rt2)){
}
else{
r51fatal_error_vdrd6(a2,a3,((T0*)ms51_228345));
}
/*FI]*/
}
else if(X52is_reference(_rt2)){
r51fatal_error_vdrd6(a2,a3,((T0*)ms51_228345));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
T0* r51get_default_rescue(T51* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
T0* _fn1=NULL;
T0* _p=NULL;
T0* _general=NULL;
_general=r51class_general();
/*[IF*/
if((C)!=((void*)(_general))){
_p=r51general_default_rescue(((T51*)_general));
/*[IF*/
if((_p)!=((void*)(NULL))){
_fn1=/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(((T303*)_p))->_names/*8*/))))->_first/*0*/)/*)*/;
_fn2=r51new_name_of(C,_general,_fn1);
/*[IF*/
if((X82to_string(_fn2))!=((void*)(X82to_string(a2)))){
_p=r51look_up_for(C,a1,_fn2);
if(NULL!=(_p)){
switch(((T0*)_p)->id){
case 303:
break;
default:
_p=NULL;
}
}/*[IF*/
if((_p)!=((void*)(NULL))){
R=r303a_default_rescue(((T303*)_p),a1,_fn2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r51new_name_of_original(T51* C,T0* a1,T0* a2){
T0* R=NULL;
/*[IF*/
if((C)==((void*)(a1))){
R=a2;
}
else if(r51is_general(C)){
R=a2;
}
else{
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
R=r51new_name_of((T51*)(r51class_any()),a1,a2);
}
else{
/*[IRF3.3clear*/((((T360*)((T360*)(oBC51going_up_trace))))->_upper)=(-(1));
/*]*/
R=r57going_up((T57*)((/*RF2*/(C)->_parent_list/*34*/)),oBC51going_up_trace,a1,a2);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r51check_generic_formal_arguments(T51* C){
/*[IF*/
if(((/*RF2*/(C)->_formal_generic_list/*22*/))!=((void*)(NULL))){
r94check_generic_formal_arguments((T94*)((/*RF2*/(C)->_formal_generic_list/*22*/)));
}
/*FI]*/
}
T0*oBC51mem_fn=NULL;
int fBC51mem_fn=0;
T0* r51mem_fn(void){
if(fBC51mem_fn==0){fBC51mem_fn=1;{
T68 _unknown_position={NULL,0};
{T138*n=((T138*)malloc(sizeof(*n))/*20*/);
*n=M138;
oBC51mem_fn=((T0*)n);
r138make(n,((T0*)ms15_6762),_unknown_position);
}
}}
return oBC51mem_fn;
}
void r51set_is_expanded(T51* C){
/*[IF*/
if((/*RF2*/(C)->_is_deferred/*16*/)){
/*[IRF3.6error_vtec1*/{T51* C1=C;
r51error((/*RF2*/((T61*)((/*RF2*/(C1)->_name/*18*/)))->_start_position/*0*/),((T0*)ms51_130095));
}/*]*/
}
/*FI]*/
(/*SFN*/C->_is_expanded)=1;
}
void r51set_is_deferred(T51* C){
/*[IF*/
if((/*RF2*/(C)->_is_expanded/*17*/)){
/*[IRF3.6error_vtec1*/{T51* C1=C;
r51error((/*RF2*/((T61*)((/*RF2*/(C1)->_name/*18*/)))->_start_position/*0*/),((T0*)ms51_130095));
}/*]*/
}
/*FI]*/
(/*SFN*/C->_is_deferred)=1;
}
void r51add_feature_clause(T51* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_feature_clause_list/*42*/))==((void*)(NULL))){
{T95*n=((T95*)malloc(sizeof(*n))/*4*/);
*n=M95;
r95make(n,a1);
(/*SFN*/C->_feature_clause_list)=((T0*)n);
}
}
else{
/*[IRF3.5add_last*/r97add_last(((T97*)((/*RF2*/((T95*)((/*RF2*/(C)->_feature_clause_list/*42*/)))->_list/*0*/))),a1);
/*]*/
}
/*FI]*/
}
T0* r51new_name_of(T51* C,T0* a1,T0* a2){
T0* R=NULL;
/*[IF*/
if((C)==((void*)(a1))){
R=a2;
}
else{
R=r51up_to_original(((T51*)a1),(T0*)C,a2);
/*[IF*/
if((R)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a2),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms14_7263);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(a2);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_5320);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(((T51*)a1))->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_15152);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r51fatal_error(((T0*)ms51_160aa));
}
/*FI]*/
}
/*FI]*/
return R;
}
T6 r51has(T51* C,T0* a1){
T6 R=0;
R=(r51e_feature(C,a1))!=((void*)(NULL));
return R;
}
T0* r51root_procedure(T51* C,T0* a1){
T0* R=NULL;
T0* _f=NULL;
T0* _rc=NULL;
/*[IF*/
if(/*(IRF4.7is_generic*/((/*RF2*/(C)->_formal_generic_list/*22*/))!=(NULL)/*)*/){
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_147680);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
/*[IF*/
if((/*RF2*/(C)->_is_deferred/*16*/)){
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_152958);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_warning((T66*)(oBC13eh));
}
/*FI]*/
_rc=r51run_class(C);
r50set_at_run_time(((T50*)_rc));
_f=r51look_up_for(C,_rc,a1);
/*[IF*/
if((_f)==((void*)(NULL))){
r66add_position((/*RF2*/(((T138*)a1))->_start_position/*4*/));
r51fatal_error(((T0*)ms51_40050));
}
/*FI]*/
R=_f;
if(NULL!=(R)){
switch(((T0*)R)->id){
case 303:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(_f),&se_tmp0)));
}
r51fatal_error(((T0*)ms51_59892));
}
/*FI]*/
return R;
}
T6 r51is_any(T51* C){
T6 R=0;
R=(((T0*)ms15_696))==((void*)((/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/)));
return R;
}
void r51fatal_undefine(T51* C,T0* a1){
/*[IRF3.6append*/{T0* b1=((T0*)ms51_36270);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(a1);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_3102);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r51fatal_error(((T0*)ms51_160a));
}
T0* r51type_any(void){
if(fBC13type_any==0){fBC13type_any=1;{
T68 _unknown_position={NULL,0};
{T259*n=((T259*)malloc(sizeof(*n))/*8*/);
*n=M259;
oBC13type_any=((T0*)n);
r259make(n,_unknown_position);
}
}}
return oBC13type_any;
}
T0* r51super_look_up_for(T51* C,T0* a1,T0* a2){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
/*[IF*/
if(r51is_general(C)){
R=NULL;
}
else{
R=r51look_up_for((T51*)(r51class_any()),a1,a2);
}
/*FI]*/
}
else{
R=r57look_up_for((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1,a2);
}
/*FI]*/
return R;
}
T0* r51smallest_ancestor(T51* C,T0* a1,T0* a2){
T0* R=NULL;
/*[IF*/
if(r51is_any(C)){
R=a1;
}
else if((X52run_time_mark(a1))==((void*)(X52run_time_mark(a2)))){
R=a1;
}
else if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
R=r51type_any();
}
else if(((/*RF2*/((T51*)(X52base_class(a2)))->_parent_list/*34*/))==((void*)(NULL))){
R=r51type_any();
}
else{
R=r57smallest_ancestor((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1,a2);
}
/*FI]*/
return R;
}
T0* r51run_require(T51* C,T0* a1){
T0* R=NULL;
T0* _ct=NULL;
r383require_start((T383*)(oBC13assertion_collector));
_ct=/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)a1))->_current_type/*8*/);
r51collect_assertion(C,/*SSWARF2*//*X334name*/(/*RF2*/(((T368*)a1))->_name/*12*/));
R=r383require_end((T383*)(oBC13assertion_collector),a1,_ct);
return R;
}
T6 r51is_a_vncg(T51* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
R=r57is_a_vncg((T57*)((/*RF2*/(C)->_parent_list/*34*/)),X52run_type(a1),X52run_type(a2));
}
/*FI]*/
return R;
}
T0* r51class_general(void){
if(fBC13class_general==0){fBC13class_general=1;{
oBC13class_general=r49get_class(((T0*)ms15_6307));
}}
return oBC13class_general;
}
T0* r51general_default_rescue(T51* C){
T0* R=NULL;
/*[IF*/
if(r91has((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),((T0*)ms15_27034))){
R=r91at((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),((T0*)ms15_27034));
if(NULL!=(R)){
switch(((T0*)R)->id){
case 303:
break;
default:
R=NULL;
}
}}
/*FI]*/
return R;
}
void r51collect_invariant(T51* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
r57collect_invariant((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_class_invariant/*46*/))!=((void*)(NULL))){
r383invariant_add_last((T383*)(oBC13assertion_collector),(/*RF2*/(C)->_class_invariant/*46*/));
}
/*FI]*/
}
T6 r51is_general(T51* C){
T6 R=0;
R=(((T0*)ms15_6307))==((void*)((/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/)));
return R;
}
T6 r51has_simple_feature_name(T51* C,T0* a1){
T6 R=0;
T68 _unknown_position={NULL,0};
r138make((T138*)(r51mem_fn()),a1,_unknown_position);
R=r51has(C,r51mem_fn());
return R;
}
void r51fatal_error_vdrd6(T0* a1,T0* a2,T0* a3){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a2),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms51_17730);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a3;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r51original_name(T51* C,T0* a1,T0* a2){
T0* R=NULL;
/*[IF*/
if((C)==((void*)(a1))){
R=a2;
}
else if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
R=r57original_name((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1,a2);
}
else{
R=r51original_name(((T51*)a1),a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
R=a2;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a2),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(((T51*)a1))->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_780);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_120000);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_warning((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
return R;
}
void r51get_started(T51* C){
/*[IF*/
if(((/*RF2*/(C)->_feature_clause_list/*42*/))!=((void*)(NULL))){
r95get_started((T95*)((/*RF2*/(C)->_feature_clause_list/*42*/)),(/*RF2*/(C)->_feature_dictionary/*54*/));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
r57get_started((T57*)((/*RF2*/(C)->_parent_list/*34*/)));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_end_comment/*50*/))!=((void*)(NULL))){
r81good_end((T81*)((/*RF2*/(C)->_end_comment/*50*/)),(/*RF2*/(C)->_name/*18*/));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
/*[IRF3.3clear*/((((T64*)((T64*)(oBC51visited))))->_upper)=(-(1));
/*]*/
r64add_last((T64*)(oBC51visited),(T0*)C);
r57inherit_cycle_check((T57*)((/*RF2*/(C)->_parent_list/*34*/)));
}
/*FI]*/
/*[IF*/
if(((r47all_check((T47*)(oBC13run_control)))&&((/*RF2*/(C)->_is_deferred/*16*/)))&&(((/*RF2*/(C)->_creation_clause_list/*38*/))!=((void*)(NULL)))){
r66add_position((/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_start_position/*0*/));
{T68 se_tmp0;
r51warning((*(se_tmp0=r77start_position((T77*)((/*RF2*/(C)->_creation_clause_list/*38*/))),&se_tmp0)),((T0*)ms51_171472));
}
}
/*FI]*/
}
void r51id_extra_information(T51* C,T0* a1){
r48put_string(((T48*)a1),((T0*)ms51_11016));
r48put_string(((T48*)a1),(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/));
r48put_string(((T48*)a1),((T0*)ms51_14040));
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
r57id_extra_information((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
else{
r48put_string(((T48*)a1),((T0*)ms51_160));
}
/*FI]*/
}
T0* r51going_up(T51* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
R=r51going_up((T51*)(r51class_any()),a1,a2,a3);
}
else{
R=r57going_up((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1,a2,a3);
}
/*FI]*/
return R;
}
T0* r51run_class(T51* C){
T0* R=NULL;
T0* _type=NULL;
T0* _n=NULL;
T0* _rcd=NULL;
_n=(/*RF2*/((T61*)((/*RF2*/(C)->_name/*18*/)))->_to_string/*8*/);
_rcd=oBC49run_class_dictionary;
/*[IF*/
if(r55has(((T55*)_rcd),_n)){
R=r55at(((T55*)_rcd),_n);
}
else{
{T272*n=((T272*)malloc(sizeof(*n))/*8*/);
*n=M272;
/*[IRF3.3make*/((((T272*)(n)))->_base_class_name)=((/*RF2*/(C)->_name/*18*/));
/*]*/
_type=((T0*)n);
}
R=r272run_class(((T272*)_type));
}
/*FI]*/
return R;
}
T0* r51run_feature_for(T51* C,T0* a1,T0* a2,T0* a3,T0* a4){
T0* R=NULL;
T0* _bcn=NULL;
T0* _type_formal_generic=NULL;
T0* _constraint=NULL;
T0* _nfn=NULL;
T0* _top_bc=NULL;
_type_formal_generic=X104result_type(a2);
if(NULL!=(_type_formal_generic)){
switch(((T0*)_type_formal_generic)->id){
case 280:
break;
default:
_type_formal_generic=NULL;
}
}/*[IF*/
if((_type_formal_generic)!=((void*)(NULL))){
_constraint=r280constraint(((T280*)_type_formal_generic));
/*[IF*/
if((_constraint)==((void*)(NULL))){
}
else if(!(r280is_a(((T280*)_type_formal_generic),_constraint))){
r66print_as_error((T66*)(oBC13eh));
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a3),&se_tmp0)));
}
r51fatal_error(((T0*)ms51_63712));
}
/*FI]*/
}
/*FI]*/
_nfn=a3;
_top_bc=X104static_result_base_class(a2);
/*[IF*/
if((_top_bc)!=((void*)(NULL))){
/*[IF*/
if(((C)==((void*)(_top_bc)))||(r51is_subclass_of(C,_top_bc))){
/*[IF*/
if(r51has(((T51*)_top_bc),a3)){
_nfn=r51new_name_of(C,_top_bc,a3);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=r50get_feature(((T50*)a1),_nfn);
/*[IF*/
if((R)==((void*)(NULL))){
r66feature_not_found(a3);
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
/*[IF*/
if(!(X104is_current(a2))){
_bcn=(/*RF2*/((T51*)(X52base_class(a4)))->_name/*18*/);
/*[IF*/
if(!(X334is_exported_in(R,_bcn))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X334start_position(R),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms51_23730);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(a3);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
{T68 se_tmp0;
r51error((*(se_tmp0=X82start_position(a3),&se_tmp0)),((T0*)ms51_4949));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a3),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms51_68094);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark(a4);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r51fatal_error(((T0*)ms14_46));
}
/*FI]*/
}
/*FI]*/
{T68 se_tmp0;
X90check_obsolete(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)R))->_base_feature/*24*/),(*(se_tmp0=X82start_position(a3),&se_tmp0)));
}
return R;
}
void r51fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T6 r51once_flag(T51* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_once_mark_list/*58*/))==((void*)(NULL))){
{T31*n=((T31*)malloc(sizeof(*n))/*16*/);
*n=M31;
r31with_capacity(n,4);
(/*SFN*/C->_once_mark_list)=((T0*)n);
}
r31add_last((T31*)((/*RF2*/(C)->_once_mark_list/*58*/)),a1);
}
else if(r31fast_has((T31*)((/*RF2*/(C)->_once_mark_list/*58*/)),a1)){
R=1;
}
else{
r31add_last((T31*)((/*RF2*/(C)->_once_mark_list/*58*/)),a1);
}
/*FI]*/
return R;
}
T0* r51get_copy(T51* C){
T0* R=NULL;
R=r91at((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),((T0*)ms15_1772));
return R;
}
T0* r51expanded_initializer(T51* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_creation_clause_list/*38*/))!=((void*)(NULL))){
R=r77expanded_initializer((T77*)((/*RF2*/(C)->_creation_clause_list/*38*/)),a1);
}
/*FI]*/
return R;
}
T6 r51is_subclass_of_aux(T51* C,T0* a1){
T6 R=0;
/*[IF*/
if(r64fast_has((T64*)(oBC51visited),(T0*)C)){
}
else{
r64add_last((T64*)(oBC51visited),(T0*)C);
/*[IF*/
if(((/*RF2*/(C)->_parent_list/*34*/))!=((void*)(NULL))){
R=r57has_parent((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
else if(!(r64fast_has((T64*)(oBC51visited),r51class_any()))){
R=r51is_subclass_of_aux((T51*)(r51class_any()),a1);
}
/*FI]*/
}
/*FI]*/
return R;
}